作品五:RBAC 权限管理系统
在线体验
一、定位与价值
| 视角 | 说明 |
|---|---|
| 安全 | 基于角色的访问控制(RBAC):用户—角色—权限—菜单/按钮/API |
| 管理 | 后台统一维护组织、账号、授权策略,减少硬编码权限 |
| 合规 | 操作审计、敏感动作二次校验等可按模块扩展 |
对应仓库:projects/rbac-management(Vue 3 管理端 + NestJS + TypeORM + Redis)。
二、逻辑架构(摘要)
text
浏览器(/rbac/)
↓
Nginx → 静态 SPA
↓ Authorization: Bearer <JWT>
NestJS(/api-rbac/)
↓
MySQL(用户 / 角色 / 权限 / 菜单)
Redis(Token 黑名单、TTL 与 JWT 有效期对齐)- 登录态:Passport JWT;登出将令牌置入 Redis 黑名单,防止客户端删 Token 仍可用。
- 数据同步:示例环境可能开启 DB_SYNC(生产务必改为迁移与严控)。
三、技术栈
| 层级 | 技术 |
|---|---|
| 前端 | Vue 3、TypeScript、Pinia、Element Plus、动态路由 / 菜单 |
| 后端 | NestJS、TypeORM、bcrypt、class-validator、Winston |
| 缓存 | ioredis(黑名单与热点可选) |
四、多维说明
| 角度 | 内容 |
|---|---|
| 产品 | 菜单树、按钮级权限、数据权限(可按行扩展) |
| 前端 | 路由守卫 + 指令/组件控制按钮显示;避免仅靠前端隐藏 |
| 后端 | 每一鉴权接口 校验角色与策略;不信任前端传的 role |
| 审计 | 登录 / 授权变更 / 敏感操作日志 |
